package edu.ualr.oyster.gui; import java.awt.Component; import java.util.EventObject; import javax.swing.AbstractCellEditor; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.JTable; import javax.swing.event.CellEditorListener; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import javax.swing.text.TableView.TableCell; public class OysterTable extends JTable{ // @Override // public TableCellEditor getCellEditor(int row, int column) { // Object value = super.getValueAt(row, column); // if(value != null) { // if(value instanceof JComboBox) { // return (TableCellEditor) new ComboBoxEditor().getTableCellEditorComponent(this, value, true, row, column); // } // return getDefaultEditor(value.getClass()); // } // return super.getCellEditor(row, column); // } public void ClearSelectedRow() { DefaultTableModel dftm = (DefaultTableModel) this.getModel(); if (this.getSelectedRowCount() < 2){ if (this.getSelectedRow() > -1){ dftm.removeRow( this.getSelectedRow() ); } }else if (this.getSelectedRowCount() > 1){ int[] rowsSelected = new int[ this.getSelectedRowCount() ]; for (int i = 0; i < rowsSelected.length; i++){ dftm.removeRow(rowsSelected[i]); } } } public void ClearTable() { DefaultTableModel dftm = (DefaultTableModel) this.getModel(); while (dftm.getRowCount() > 0) { dftm.removeRow(0); } } public void AddDetailRow(int rowNum){ DefaultTableModel tm = (DefaultTableModel) this.getModel(); Object[] insertion = {}; tm.insertRow(rowNum, insertion); } public void AddDetailRow(){ DefaultTableModel tm = (DefaultTableModel) this.getModel(); Object[] insertion = {}; tm.insertRow(this.getRowCount(), insertion);; } public void FillTable(){ } public TableModel getTableModel(int columns, String[] columnNames, final Class[] columnClasses){ DefaultTableModel dftm = new DefaultTableModel( columnNames, this.getRowCount()){ public Class getColumnClass (int columnIndex){ return columnClasses[columnIndex]; } }; return dftm; } public void setTableModel(int columns, String[] columnNames, final Class[] columnClasses){ DefaultTableModel dftm = new DefaultTableModel( columnNames, this.getRowCount()){ public Class getColumnClass (int columnIndex){ return columnClasses[columnIndex]; } }; this.setModel(dftm); } public void setComboBoxRenderer(int colNum, String[] items){ TableColumn col = this.getColumnModel().getColumn(colNum); col.setCellEditor( new javax.swing.DefaultCellEditor( new JComboBox(items) ) ); col.setCellRenderer( new ComboBoxRenderer(items) ); } public class ComboBoxRenderer extends JComboBox implements TableCellRenderer { public ComboBoxRenderer(String[] items) { super(items); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } setSelectedItem(value); return this; } } public void setComboBoxEditor(int row, int col){ } public class ComboBoxEditor extends AbstractCellEditor implements TableCellEditor{ @Override public void addCellEditorListener(CellEditorListener l) { // TODO Auto-generated method stub } @Override public void cancelCellEditing() { // TODO Auto-generated method stub } @Override public Object getCellEditorValue() { return this.getCellEditorValue(); } @Override public boolean isCellEditable(EventObject anEvent) { // TODO Auto-generated method stub return true; } @Override public void removeCellEditorListener(CellEditorListener l) { // TODO Auto-generated method stub } @Override public boolean shouldSelectCell(EventObject anEvent) { // TODO Auto-generated method stub return false; } @Override public boolean stopCellEditing() { // TODO Auto-generated method stub return false; } @Override public Component getTableCellEditorComponent(JTable t, Object value, boolean isSelected, int row, int col) { // TODO Auto-generated method stub return null; } } }